package simco.framework.gui.graph.iface;

/**
 * Definuje objekt s nim zle v ramci prostoru (platna),
 * na nemz jsou objekty umisteny, pohybovat, tj. menit
 * jeho aktualni polohu. 
 * 
 * @author Matej Prokop, mythge@students.zcu.cz
 */
public interface Movable
{
	/**
	 * Nastavi aktualni polohu objektu (konkretne
	 * polohu bodu leveho horniho rohu objektu) 
	 * 
	 * @param x x-ova souradnice v prostoru
	 * @param y y-ova souradnice v prostoru
	 */
    public void setPosition(int x, int y);
    
    /**
     * Vraci x-ovou souradnici aktualni pozice objektu v prostoru
     * @return x-ovou souranici v prostoru
     */
    public int getX();
    
    /**
     * Vraci y-ovou souradnici aktualni pozice objektu v prostoru
     * @return y-ovou souranici v prostoru
     */
    public int getY();
    
    /**
     * Vraci x-ovou souradnici praveho horniho rohu objektu
     * @return x-ovou souradnici praveho horniho rohu objektu
     */
    public int getMaxX();
    
    /**
     * Vraci y-ovou souradnici praveho horniho rohu objektu
     * @return y-ovou souradnici praveho horniho rohu objektu
     */
    public int getMaxY();
}
